#pragma once
#include <Arduino.h>
#include <stdint.h>

// LED驱动配置
#define LED_COUNT 36
#define LED_PIN 25

// RMT配置
#define RMT_CHANNEL RMT_CHANNEL_0
#define RMT_MEM_NUM 2

// LED颜色结构体
struct RGB {
    uint8_t r;
    uint8_t g;
    uint8_t b;
};

// LED驱动类
class LEDDriver {
public:
    LEDDriver();
    ~LEDDriver();
    
    // 初始化LED驱动
    void init();
    
    // 设置单个LED颜色
    void setPixel(uint32_t index, uint8_t r, uint8_t g, uint8_t b);
    
    // 设置所有LED颜色
    void setAllPixels(uint8_t r, uint8_t g, uint8_t b);
    
    // 显示LED
    void show();
    
    // 清除所有LED
    void clear();
    
private:
    // RMT发送数据
    void sendLEDData();
    
    // LED缓冲区
    RGB* ledBuffer;
};
